###########Exerccio 1#####################

eutad <- read.table("palmito.txt", header = TRUE, sep = "\t", as.is = TRUE)

#Fazendo a anlise exploratria
str(eutad)
head(eutad)
summary(eutad)

dist=matrix(NA, ncol=102, nrow=102) #Criando a matriz com NAs para sere preenchida com os meus valores de distncia

for(i in 1:101)
{
  for(j in (i+1):102)
  {
    difx2=(eutad$gx[i]-eutad$gx[j])^2
    dify2=(eutad$gy[i]-eutad$gy[j])^2
    dist[i,j]<-sqrt(difx2 + dify2)
    dist[j,i]<-sqrt(difx2 + dify2)
  }
  
}

dist #Olhando a minha matriz de distncia com os valores
(nn<-apply(dist, 1, min, na.rm=TRUE)) # Removendo os meus valores de NAs da minha matriz e pegando os valores de distncia mnima das distncias entre as rvores.
(mnn<-mean(nn)) #Calculando a distncia mdia do vizinho mais prximo, em cima dos valores mnimos registrados do nn

resultado <- rep(NA, 1000) #Criando o vetor que ser preenchido com os valores das mdias dos meus ciclos das minha matrizes
resultado[1]<- mnn #Guardando o meu valor observado na primeira posio


for (k in 2:1000)
{
    x<-runif(102, 0, 320)  #Valores hipotticos de coordenadas que vou colocar na minha matriz
    y<-runif(102, 0, 320)
    dist.sim <- matrix(data = NA, nrow = 102, ncol = 102) 
    for(i in 1:101)
    {
      for(j in (i+1):102)
      {
        difx2=(x[i]-x[j])^2
        dify2=(y[i]-y[j])^2
        dist.sim[i,j]<-sqrt(difx2 + dify2)
        dist.sim[j,i]<-sqrt(difx2 + dify2)
      }
    }
    nn.sim<-apply(dist.sim, 1, min, na.rm=TRUE)
    resultado[k]<- mean(nn.sim)
}

#HISTOGRAMA
resultado
hist(resultado)
abline(v = resultado[1], col = "red")

#cLCULO DA PROBABILIDADE
result.sim <- sum(resultado<=resultado[1])
probabilidade <- result.sim/length(resultado)


###### EXERCCIO 2, Simulando o teste de uma regresso linear################


#Carregando os meus dados e fazendo uma anlise exploratria
animais <- read.table("animais.txt", header = TRUE, sep = ";", as.is = TRUE, dec = ",")
animais
class (animais$body)
summary(animais)
animais<-na.exclude(animais)
summary(animais)

#Calculo da inclinao da reta a partir dos meus dados
x.media<- mean(log(animais$body))       # x = body  
y.media<- mean(log(animais$brain))      # y = brain
b= (sum((log(animais$body)-x.media)*(log(animais$brain)-y.media)))/(sum((log(animais$body)-x.media)^2))

#Vetor para guardar os dados da simulao
dados.sim  <- rep(NA, 1000)
dados.sim[1] <- b

#Criando os outros valores simulados
for (i in 2:1000)
  {
   sim.brain <- sample(log(animais$brain), replace = TRUE)
   x.sim <- mean(log(animais$body))
   y.sim <- mean(sim.brain)       
   b.sim <- (sum((log(animais$body)-x.media)*(sim.brain-y.sim)))/(sum((log(animais$body)-x.media)^2))
   dados.sim[i] <- b.sim
}

dados.sim

#Contruindo histograma, e a linha indicando qual o meu valor observado nos meus dados
hist(dados.sim, xlab = "Angulaes criadas numa simulao nula")
abline(v = b, col = "red", lty = 3)


#Calculando a probabilidade
val.sim <- sum(dados.sim>=b)
probabilidade <- val.sim/ (length(dados.sim))


